package com.zhoukx.netty.buffer;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import io.netty.util.CharsetUtil;

import java.nio.charset.Charset;


public class NettyByteBuf02 {

    public static void main(String[] args) {
        // 创建buyteBuffer
        ByteBuf buf = Unpooled.copiedBuffer("hello,world!", CharsetUtil.UTF_8);

        // 使用相关的方法
        if (buf.hasArray()) { // 有没有下一个数组
            byte[] array = buf.array(); // 获取数组

            // 从新将content转成字符串
            String string = new String(array, Charset.forName("utf-8"));
            System.out.println(string);
            System.out.println("buf ="+ buf);

            System.out.println(buf.arrayOffset()); // 0
            System.out.println(buf.readerIndex()); // 0 读的位置
            System.out.println(buf.writerIndex()); //12  写的位置
            System.out.println(buf.capacity()); //容量

            int len = buf.readableBytes();  // 可以读取的字节
            System.out.println("leng= "+ len);

            // 使用for循环读取各个字节
            for (int sout = 0; sout < len; sout++) {
                System.out.println((char) buf.getByte(sout));
            }

            // 读取区间 字符串
            System.out.println(buf.getCharSequence(0,4,Charset.forName("utf-8")));
        }
    }
}
